<TagAttribute("biped","bipd","unit","obje",3,1268)>
Public Class BIPED_TAG
Inherits HaloTag
Public Const Extension as String = "biped"
Public Const FourCC as String = "bipd"
Public Const ParentFourCC as String = "unit"
Public Const GrandParentFourCC as String = "obje"
Public Const [Version] as Short = 3
Public Const HeaderLength as Integer = 1268

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 19)>
Public flags as Short

''' <summary>
''' 
''' </summary>
<TagField("bounding radius:world units", 1, 0)>
Public bounding_radius as Single

''' <summary>
''' 
''' </summary>
<TagField("bounding offset", 3, 2)>
Public bounding_offset as Single()

''' <summary>
''' 
''' </summary>
<TagField("origin offset", 3, 2)>
Public origin_offset as Single()

''' <summary>
''' marine 1.0, grunt 1.4, elite 0.9, hunter 0.5, etc.
''' </summary>
<TagField("acceleration scale:[0,+inf]", 1, 0)>
Public acceleration_scale as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("model", 16, 10)>
Public model as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("animation graph", 16, 10)>
Public animation_graph as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 40, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("collision model", 16, 10)>
Public collision_model as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("physics", 16, 10)>
Public physics as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("modifier shader", 16, 10)>
Public modifier_shader as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("creation effect", 16, 10)>
Public creation_effect as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 84, -1)>
Public padding_3 as Byte()

''' <summary>
''' if set, this radius is used to determine if the object is visible. set it for the pelican.
''' </summary>
<TagField("render bounding radius:world units", 1, 0)>
Public render_bounding_radius as Single

''' <summary>
''' 
''' </summary>
#Region "export to functions"

''' <summary>
''' 
''' </summary>
<TagField("A in", 1, 17)>
Public A_in as Short

''' <summary>
''' 
''' </summary>
<TagField("B in", 1, 17)>
Public B_in as Short

''' <summary>
''' 
''' </summary>
<TagField("C in", 1, 17)>
Public C_in as Short

''' <summary>
''' 
''' </summary>
<TagField("D in", 1, 17)>
Public D_in as Short

''' <summary>
''' 
''' </summary>
<TagField("", 44, -1)>
Public padding_4 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("hud text message index", 1, 23)>
Public hud_text_message_index as Short

''' <summary>
''' 
''' </summary>
<TagField("forced shader permuation index", 1, 23)>
Public forced_shader_permuation_index as Short

''' <summary>
''' object_attachment_block
''' </summary>
<TagField("attachments", 72, 11)>
Public attachments as List(Of ATTACHMENTS_BLOCK)

''' <summary>
''' object_widget_block
''' </summary>
<TagField("widgets", 32, 11)>
Public widgets as List(Of WIDGETS_BLOCK)

''' <summary>
''' object_function_block
''' </summary>
<TagField("functions", 360, 11)>
Public functions as List(Of FUNCTIONS_BLOCK)

''' <summary>
''' object_change_colors
''' </summary>
<TagField("change colors", 44, 11)>
Public change_colors as List(Of CHANGE_COLORS_BLOCK)

''' <summary>
''' predicted_resource_block
''' </summary>
<TagField("predicted resources", 8, 11)>
Public predicted_resources as List(Of PREDICTED_RESOURCES_BLOCK)

''' <summary>
''' 
''' </summary>
#End Region
#Region "$$$ UNIT $$$"

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags_1 as Integer

''' <summary>
''' 
''' </summary>
<TagField("default team", 1, 17)>
Public default_team as Short

''' <summary>
''' 
''' </summary>
<TagField("constant sound volume", 1, 17)>
Public constant_sound_volume as Short

''' <summary>
''' what percent damage applied to us gets applied to our children (i.e., riders)
''' </summary>
<TagField("rider damage fraction:[0,+inf]", 1, 0)>
Public rider_damage_fraction as Single

''' <summary>
''' 
''' </summary>
<TagField("integrated light toggle", 16, 10)>
Public integrated_light_toggle as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("A in", 1, 17)>
Public A_in_1 as Short

''' <summary>
''' 
''' </summary>
<TagField("B in", 1, 17)>
Public B_in_1 as Short

''' <summary>
''' 
''' </summary>
<TagField("C in", 1, 17)>
Public C_in_1 as Short

''' <summary>
''' 
''' </summary>
<TagField("D in", 1, 17)>
Public D_in_1 as Short

''' <summary>
''' 
''' </summary>
<TagField("camera field of view:degrees", 1, 0)>
Public camera_field_of_view as Single

''' <summary>
''' 
''' </summary>
<TagField("camera stiffness", 1, 0)>
Public camera_stiffness as Single

''' <summary>
''' 
''' </summary>
<TagField("camera marker name", 32, 8)>
Public camera_marker_name as String

''' <summary>
''' 
''' </summary>
<TagField("camera submerged marker name", 32, 8)>
Public camera_submerged_marker_name as String

''' <summary>
''' 
''' </summary>
<TagField("pitch auto-level", 1, 0)>
Public pitch_auto as Single

''' <summary>
''' 
''' </summary>
<TagField("pitch range", 2, 1)>
Public pitch_range as Single()

''' <summary>
''' unit_camera_track_block
''' </summary>
<TagField("camera tracks", 28, 11)>
Public camera_tracks as List(Of CAMERA_TRACKS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("seat acceleration scale", 3, 2)>
Public seat_acceleration_scale as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_5 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("soft ping threshold:[0,1]", 1, 0)>
Public soft_ping_threshold as Single

''' <summary>
''' 
''' </summary>
<TagField("soft ping interrupt time:seconds", 1, 0)>
Public soft_ping_interrupt_time as Single

''' <summary>
''' 
''' </summary>
<TagField("hard ping threshold:[0,1]", 1, 0)>
Public hard_ping_threshold as Single

''' <summary>
''' 
''' </summary>
<TagField("hard ping interrupt time:seconds", 1, 0)>
Public hard_ping_interrupt_time as Single

''' <summary>
''' 
''' </summary>
<TagField("hard death threshold:[0,1]", 1, 0)>
Public hard_death_threshold as Single

''' <summary>
''' 
''' </summary>
<TagField("feign death threshold:[0,1]", 1, 0)>
Public feign_death_threshold as Single

''' <summary>
''' 
''' </summary>
<TagField("feign death time:seconds", 1, 0)>
Public feign_death_time as Single

''' <summary>
''' this must be set to tell the AI how far it should expect our evade animation to move us
''' </summary>
<TagField("distance of evade anim:world units", 1, 0)>
Public distance_of_evade_anim as Single

''' <summary>
''' this must be set to tell the AI how far it should expect our dive animation to move us
''' </summary>
<TagField("distance of dive anim:world units", 1, 0)>
Public distance_of_dive_anim as Single

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_6 as Byte()

''' <summary>
''' if we take this much damage in a short space of time we will play our 'stunned movement' animations
''' </summary>
<TagField("stunned movement threshold:[0,1]", 1, 0)>
Public stunned_movement_threshold as Single

''' <summary>
''' 
''' </summary>
<TagField("feign death chance:[0,1]", 1, 0)>
Public feign_death_chance as Single

''' <summary>
''' 
''' </summary>
<TagField("feign repeat chance:[0,1]", 1, 0)>
Public feign_repeat_chance as Single

''' <summary>
''' actor variant which we spawn when we are destroyed or self-destruct
''' </summary>
<TagField("spawned actor", 16, 10)>
Public spawned_actor as New TAG_REFERENCE

''' <summary>
''' number of actors which we spawn
''' </summary>
<TagField("spawned actor count", 2, 24)>
Public spawned_actor_count as Short()

''' <summary>
''' velocity at which we throw spawned actors
''' </summary>
<TagField("spawned velocity", 1, 0)>
Public spawned_velocity as Single

''' <summary>
''' 
''' </summary>
<TagField("aiming velocity maximum:degrees per second", 1, 0)>
Public aiming_velocity_maximum as Single

''' <summary>
''' 
''' </summary>
<TagField("aiming acceleration maximum:degrees per second squared", 1, 0)>
Public aiming_acceleration_maximum as Single

''' <summary>
''' 
''' </summary>
<TagField("casual aiming modifier:[0,1]", 1, 0)>
Public casual_aiming_modifier as Single

''' <summary>
''' 
''' </summary>
<TagField("looking velocity maximum:degrees per second", 1, 0)>
Public looking_velocity_maximum as Single

''' <summary>
''' 
''' </summary>
<TagField("looking acceleration maximum:degrees per second squared", 1, 0)>
Public looking_acceleration_maximum as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_7 as Byte()

''' <summary>
''' radius around this unit that the AI tries to avoid when entering it as a vehicle (zero = use bounding sphere radius)
''' </summary>
<TagField("AI vehicle radius", 1, 0)>
Public AI_vehicle_radius as Single

''' <summary>
''' danger radius around this unit that the AI tries to avoid
''' </summary>
<TagField("AI danger radius", 1, 0)>
Public AI_danger_radius as Single

''' <summary>
''' 
''' </summary>
<TagField("melee damage", 16, 10)>
Public melee_damage as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("motion sensor blip size", 1, 17)>
Public motion_sensor_blip_size as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_8 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_9 as Byte()

''' <summary>
''' unit_hud_reference_block
''' </summary>
<TagField("NEW HUD INTERFACES", 48, 11)>
Public new_hud_interfaces as List(Of NEW_HUD_INTERFACES_BLOCK)

''' <summary>
''' dialogue_variant_block
''' </summary>
<TagField("dialogue variants", 24, 11)>
Public dialogue_variants as List(Of DIALOGUE_VARIANTS_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("grenade velocity:world units per second", 1, 0)>
Public grenade_velocity as Single

''' <summary>
''' 
''' </summary>
<TagField("grenade type", 1, 17)>
Public grenade_type as Short

''' <summary>
''' 
''' </summary>
<TagField("grenade count", 1, 23)>
Public grenade_count as Short

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_10 as Byte()

''' <summary>
''' powered_seat_block
''' </summary>
<TagField("powered seats", 68, 11)>
Public powered_seats as List(Of POWERED_SEATS_BLOCK)

''' <summary>
''' unit_weapon_block
''' </summary>
<TagField("weapons", 36, 11)>
Public weapons as List(Of WEAPONS_BLOCK)

''' <summary>
''' unit_seat_block
''' </summary>
<TagField("seats", 284, 11)>
Public seats as List(Of SEATS_BLOCK)

''' <summary>
''' 
''' </summary>
#End Region
#Region "$$$ BIPED $$$"

''' <summary>
''' 
''' </summary>
<TagField("moving turning speed:degrees per second", 1, 0)>
Public moving_turning_speed as Single

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags_2 as Integer

''' <summary>
''' 
''' </summary>
<TagField("stationary turning threshold", 1, 0)>
Public stationary_turning_threshold as Single

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_11 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("A in", 1, 17)>
Public A_in_2 as Short

''' <summary>
''' 
''' </summary>
<TagField("B in", 1, 17)>
Public B_in_2 as Short

''' <summary>
''' 
''' </summary>
<TagField("C in", 1, 17)>
Public C_in_2 as Short

''' <summary>
''' 
''' </summary>
<TagField("D in", 1, 17)>
Public D_in_2 as Short

''' <summary>
''' 
''' </summary>
<TagField("DON'T USE", 16, 10)>
Public dont_use as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
#End Region
#Region "flying"

''' <summary>
''' angle at which we bank left/right when sidestepping or turning while moving forwards
''' </summary>
<TagField("bank angle:degrees", 1, 0)>
Public bank_angle as Single

''' <summary>
''' time it takes us to apply a bank
''' </summary>
<TagField("bank apply time:seconds", 1, 0)>
Public bank_apply_time as Single

''' <summary>
''' time it takes us to recover from a bank
''' </summary>
<TagField("bank decay time:seconds", 1, 0)>
Public bank_decay_time as Single

''' <summary>
''' amount that we pitch up/down when moving up or down
''' </summary>
<TagField("pitch ratio", 1, 0)>
Public pitch_ratio as Single

''' <summary>
''' max velocity when not crouching
''' </summary>
<TagField("max velocity:world units per second", 1, 0)>
Public max_velocity as Single

''' <summary>
''' max sideways or up/down velocity when not crouching
''' </summary>
<TagField("max sidestep velocity:world units per second", 1, 0)>
Public max_sidestep_velocity as Single

''' <summary>
''' 
''' </summary>
<TagField("acceleration:world units per second squared", 1, 0)>
Public acceleration as Single

''' <summary>
''' 
''' </summary>
<TagField("deceleration:world units per second squared", 1, 0)>
Public deceleration as Single

''' <summary>
''' turn rate
''' </summary>
<TagField("angular velocity maximum:degrees per second", 1, 0)>
Public angular_velocity_maximum as Single

''' <summary>
''' turn acceleration rate
''' </summary>
<TagField("angular acceleration maximum:degrees per second squared", 1, 0)>
Public angular_acceleration_maximum as Single

''' <summary>
''' how much slower we fly if crouching (zero = same speed)
''' </summary>
<TagField("crouch velocity modifier:[0,1]", 1, 0)>
Public crouch_velocity_modifier as Single

''' <summary>
''' 
''' </summary>
<TagField("", 8, -1)>
Public padding_12 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "movement"

''' <summary>
''' 
''' </summary>
<TagField("maximum slope angle:degrees", 1, 0)>
Public maximum_slope_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("downhill falloff angle:degrees", 1, 0)>
Public downhill_falloff_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("downhill cutoff angle:degrees", 1, 0)>
Public downhill_cutoff_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("downhill velocity scale", 1, 0)>
Public downhill_velocity_scale as Single

''' <summary>
''' 
''' </summary>
<TagField("uphill falloff angle:degrees", 1, 0)>
Public uphill_falloff_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("uphill cutoff angle:degrees", 1, 0)>
Public uphill_cutoff_angle as Single

''' <summary>
''' 
''' </summary>
<TagField("uphill velocity scale", 1, 0)>
Public uphill_velocity_scale as Single

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_13 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("footsteps", 16, 10)>
Public footsteps as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_14 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "jumping and landing"

''' <summary>
''' 
''' </summary>
<TagField("jump velocity:world units per second", 1, 0)>
Public jump_velocity as Single

''' <summary>
''' 
''' </summary>
<TagField("", 28, -1)>
Public padding_15 as Byte()

''' <summary>
''' the longest amount of time the biped can take to recover from a soft landing
''' </summary>
<TagField("maximum soft landing time:seconds", 1, 0)>
Public maximum_soft_landing_time as Single

''' <summary>
''' the longest amount of time the biped can take to recover from a hard landing
''' </summary>
<TagField("maximum hard landing time:seconds", 1, 0)>
Public maximum_hard_landing_time as Single

''' <summary>
''' below this velocity the biped does not react when landing
''' </summary>
<TagField("minimum soft landing velocity:world units per second", 1, 0)>
Public minimum_soft_landing_velocity as Single

''' <summary>
''' below this velocity the biped will not do a soft landing when returning to the ground
''' </summary>
<TagField("minimum hard landing velocity:world units per second", 1, 0)>
Public minimum_hard_landing_velocity as Single

''' <summary>
''' the velocity corresponding to the maximum landing time
''' </summary>
<TagField("maximum hard landing velocity:world units per second", 1, 0)>
Public maximum_hard_landing_velocity as Single

''' <summary>
''' the maximum velocity with which a character can strike the ground and live
''' </summary>
<TagField("death hard landing velocity:world units per second", 1, 0)>
Public death_hard_landing_velocity as Single

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding_16 as Byte()

''' <summary>
''' 
''' </summary>
#End Region
#Region "camera, collision, and autoaim"

''' <summary>
''' 
''' </summary>
<TagField("standing camera height:world units", 1, 0)>
Public standing_camera_height as Single

''' <summary>
''' 
''' </summary>
<TagField("crouching camera height:world units", 1, 0)>
Public crouching_camera_height as Single

''' <summary>
''' 
''' </summary>
<TagField("crouch transition time:seconds", 1, 0)>
Public crouch_transition_time as Single

''' <summary>
''' 
''' </summary>
<TagField("", 24, -1)>
Public padding_17 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("standing collision height:world units", 1, 0)>
Public standing_collision_height as Single

''' <summary>
''' 
''' </summary>
<TagField("crouching collision height:world units", 1, 0)>
Public crouching_collision_height as Single

''' <summary>
''' 
''' </summary>
<TagField("collision radius:world units", 1, 0)>
Public collision_radius as Single

''' <summary>
''' 
''' </summary>
<TagField("", 40, -1)>
Public padding_18 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("autoaim width:world units", 1, 0)>
Public autoaim_width as Single

''' <summary>
''' 
''' </summary>
<TagField("", 140, -1)>
Public padding_19 as Byte()

''' <summary>
''' contact_point_block
''' </summary>
<TagField("contact points#these are the points where the biped touches the ground", 64, 11)>
Public contact_points as List(Of CONTACT_POINTS_BLOCK)
#End Region
Public Class ATTACHMENTS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("type^", 16, 10)>
Public type as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("marker", 32, 8)>
Public marker as String

''' <summary>
''' 
''' </summary>
<TagField("primary scale", 1, 17)>
Public primary_scale as Short

''' <summary>
''' 
''' </summary>
<TagField("secondary scale", 1, 17)>
Public secondary_scale as Short

''' <summary>
''' 
''' </summary>
<TagField("change color", 1, 17)>
Public change_color as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_1 as Byte()

End Class
Public Class WIDGETS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("reference^", 16, 10)>
Public reference as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding as Byte()

End Class
Public Class FUNCTIONS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' this is the period for the above function (lower values make the function oscillate quickly, higher values make it oscillate slowly)
''' </summary>
<TagField("period:seconds", 1, 0)>
Public period as Single

''' <summary>
''' multiply this function by the above period
''' </summary>
<TagField("scale period by", 1, 17)>
Public scale_period_by as Short

''' <summary>
''' 
''' </summary>
<TagField("function", 1, 17)>
Public _function as Short

''' <summary>
''' multiply this function by the result of the above function
''' </summary>
<TagField("scale function by", 1, 17)>
Public scale_function_by as Short

''' <summary>
''' the curve used for the wobble
''' </summary>
<TagField("wobble function", 1, 17)>
Public wobble_function as Short

''' <summary>
''' the length of time it takes for the magnitude of this function to complete a wobble
''' </summary>
<TagField("wobble period:seconds", 1, 0)>
Public wobble_period as Single

''' <summary>
''' the amount of random wobble in the magnitude
''' </summary>
<TagField("wobble magnitude:percent", 1, 0)>
Public wobble_magnitude as Single

''' <summary>
''' if non-zero, all values above the square wave threshold are snapped to 1.0, and all values below it are snapped to 0.0 to create a square wave.
''' </summary>
<TagField("square wave threshold", 1, 0)>
Public square_wave_threshold as Single

''' <summary>
''' the number of discrete values to snap to (e.g., a step count of 5 would snap the function to 0.00,0.25,0.50,0.75 or 1.00)
''' </summary>
<TagField("step count", 1, 23)>
Public step_count as Short

''' <summary>
''' 
''' </summary>
<TagField("map to", 1, 17)>
Public map_to as Short

''' <summary>
''' the number of times this function should repeat (e.g., a sawtooth count of 5 would give the function a value of 1.0 at each of 0.25,0.50,0.75 as well as at 1.0
''' </summary>
<TagField("sawtooth count", 1, 23)>
Public sawtooth_count as Short

''' <summary>
''' add this function to the final result of all of the above math
''' </summary>
<TagField("add", 1, 17)>
Public _add as Short

''' <summary>
''' multiply this function (from a weapon, vehicle, etc.) final result of all of the above math
''' </summary>
<TagField("scale result by", 1, 17)>
Public scale_result_by as Short

''' <summary>
''' controls how the bounds, below, are used
''' </summary>
<TagField("bounds mode", 1, 17)>
Public bounds_mode as Short

''' <summary>
''' 
''' </summary>
<TagField("bounds", 2, 1)>
Public bounds as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_1 as Byte()

''' <summary>
''' if the specified function is off, so is this function
''' </summary>
<TagField("turn off with", 1, 23)>
Public turn_off_with as Short

''' <summary>
''' applied before clip, ignored if zero
''' </summary>
<TagField("scale by", 1, 0)>
Public scale_by as Single

''' <summary>
''' 
''' </summary>
<TagField("", 252, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 16, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("usage", 32, 8)>
Public usage as String

End Class
Public Class CHANGE_COLORS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("darken by", 1, 17)>
Public darken_by as Short

''' <summary>
''' 
''' </summary>
<TagField("scale by", 1, 17)>
Public scale_by as Short

''' <summary>
''' 
''' </summary>
<TagField("scale flags", 1, 20)>
Public scale_flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("color lower bound", 3, 2)>
Public color_lower_bound as Single()

''' <summary>
''' 
''' </summary>
<TagField("color upper bound", 3, 2)>
Public color_upper_bound as Single()

''' <summary>
''' object_change_color_permutations
''' </summary>
<TagField("permutations", 28, 11)>
Public permutations as List(Of PERMUTATIONS_BLOCK)
Public Class PERMUTATIONS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("weight", 1, 0)>
Public weight as Single

''' <summary>
''' 
''' </summary>
<TagField("color lower bound", 3, 2)>
Public color_lower_bound as Single()

''' <summary>
''' 
''' </summary>
<TagField("color upper bound", 3, 2)>
Public color_upper_bound as Single()

End Class

End Class
Public Class PREDICTED_RESOURCES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("type", 1, 17)>
Public type as Short

''' <summary>
''' 
''' </summary>
<TagField("resource index", 1, 23)>
Public resource_index as Short

''' <summary>
''' 
''' </summary>
<TagField("tag index", 1, 4)>
Public tag_index as Integer

End Class
Public Class CAMERA_TRACKS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("track", 16, 10)>
Public track as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding as Byte()

End Class
Public Class NEW_HUD_INTERFACES_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("unit hud interface", 16, 10)>
Public unit_hud_interface as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding as Byte()

End Class
Public Class DIALOGUE_VARIANTS_BLOCK

''' <summary>
''' variant number to use this dialogue with (must match the suffix in the permutations on the unit's model)
''' </summary>
<TagField("variant number", 1, 23)>
Public variant_number as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("dialogue", 16, 10)>
Public dialogue as New TAG_REFERENCE

End Class
Public Class POWERED_SEATS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("driver powerup time:seconds", 1, 0)>
Public driver_powerup_time as Single

''' <summary>
''' 
''' </summary>
<TagField("driver powerdown time:seconds", 1, 0)>
Public driver_powerdown_time as Single

''' <summary>
''' 
''' </summary>
<TagField("", 56, -1)>
Public padding_1 as Byte()

End Class
Public Class WEAPONS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("weapon^", 16, 10)>
Public weapon as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding as Byte()

End Class
Public Class SEATS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("flags", 1, 20)>
Public flags as Integer

''' <summary>
''' 
''' </summary>
<TagField("label", 32, 8)>
Public label as String

''' <summary>
''' 
''' </summary>
<TagField("marker name^", 32, 8)>
Public marker_name as String

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("acceleration scale", 3, 2)>
Public acceleration_scale as Single()

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding_1 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("yaw rate:degrees per second", 1, 0)>
Public yaw_rate as Single

''' <summary>
''' 
''' </summary>
<TagField("pitch rate:degrees per second", 1, 0)>
Public pitch_rate as Single

''' <summary>
''' 
''' </summary>
<TagField("camera marker name", 32, 8)>
Public camera_marker_name as String

''' <summary>
''' 
''' </summary>
<TagField("camera submerged marker name", 32, 8)>
Public camera_submerged_marker_name as String

''' <summary>
''' 
''' </summary>
<TagField("pitch auto-level", 1, 0)>
Public pitch_auto as Single

''' <summary>
''' 
''' </summary>
<TagField("pitch range", 2, 1)>
Public pitch_range as Single()

''' <summary>
''' unit_camera_track_block
''' </summary>
<TagField("camera tracks", 28, 11)>
Public camera_tracks as List(Of CAMERA_TRACKS_BLOCK)

''' <summary>
''' unit_hud_reference_block
''' </summary>
<TagField("unit hud interface", 48, 11)>
Public unit_hud_interface as List(Of UNIT_HUD_INTERFACE_BLOCK)

''' <summary>
''' 
''' </summary>
<TagField("", 4, -1)>
Public padding_2 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("hud text message index", 1, 23)>
Public hud_text_message_index as Short

''' <summary>
''' 
''' </summary>
<TagField("", 2, -1)>
Public padding_3 as Byte()

''' <summary>
''' 
''' </summary>
<TagField("yaw minimum", 1, 0)>
Public yaw_minimum as Single

''' <summary>
''' 
''' </summary>
<TagField("yaw maximum", 1, 0)>
Public yaw_maximum as Single

''' <summary>
''' 
''' </summary>
<TagField("built-in gunner", 16, 10)>
Public built as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 20, -1)>
Public padding_4 as Byte()
Public Class CAMERA_TRACKS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("track", 16, 10)>
Public track as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 12, -1)>
Public padding as Byte()

End Class
Public Class UNIT_HUD_INTERFACE_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("unit hud interface", 16, 10)>
Public unit_hud_interface as New TAG_REFERENCE

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding as Byte()

End Class

End Class
Public Class CONTACT_POINTS_BLOCK

''' <summary>
''' 
''' </summary>
<TagField("", 32, -1)>
Public padding as Byte()

''' <summary>
''' 
''' </summary>
<TagField("marker name^", 32, 8)>
Public marker_name as String

End Class

End Class
